package ch.penas.business.dom;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/** @author Daniel */
@Entity
@Table(name = "utilisateurs")
public class Formateur implements Serializable {

    /** La serialization de la class Formateur pour question de securiter.*/
    private static final long serialVersionUID = -2339046580103306987L;

    /** ID de l'utilisateur. */
    @Id
    @Column(name = "id_utilisateur")
    private String idUtilisateur;

    /** User de l'utilisateur. */
    @Column(name = "id_user")
    private String user;

    /** Nom de l'utilisateur. */
    @Column(name = "nom")
    private String nom;

    /** Prenom de l'utilisateur. */
    @Column(name = "prenom")
    private String prenom;

    /** Adresse de l'utilisateur. */
    @Column(name = "adresse")
    private String adresse;

    /** Numero fixe de l'utilisateur. */
    @Column(name = "numero_fixe")
    private String numeroFixe;

    /** Numero de natel de l'utilisateur. */
    @Column(name = "numero_natel")
    private String numeroNatel;

    /** Mail de l'utilisateur. */
    @Column(name = "mail")
    private String mail;

    /** Mot de passe de l'utilisateur. */
    @Column(name = "passe")
    private String password;

    /** Constructeur par défaut de la class Formateur. */
    public Formateur() { }

    /** Re definition du constructeur de la class Formateur.
     *
     * @param aNom est egale au nom de l'utilisateur
     * @param aPrenom est egale au prenom de l'utilisateur
     * @param aAdresse est egale a l'adresse de l'utilisateur
     * @param aNumeroFixe est egale au numero fixe de l'utilisateur
     * @param aNumeroNatel est egale au numero de natel de l'utilisateur
     * @param aMail est egale a l'e-mail de l'utilisateur
     * @param aUser est egale au user de l'utilisateur
     * @param aIdUtilisateur est egale a l'idUtilisateur de l'utilisateur
     * @param aPassword est egale au mot de passe de l'utilisateur
     */
    public Formateur(final String aNom, final String aPrenom,
            final String aAdresse, final String aNumeroFixe,
            final String aNumeroNatel, final String aMail,
            final String aUser, final String aIdUtilisateur,
            final String aPassword) {
        this.nom = aNom;
        this.prenom = aPrenom;
        this.adresse = aAdresse;
        this.numeroFixe = aNumeroFixe;
        this.numeroNatel = aNumeroNatel;
        this.mail = aMail;
        this.user = aUser;
        this.idUtilisateur = aIdUtilisateur;
        this.password = aPassword;

    }

    /** Permet d'avoir une sorte de clé primaire.
     *
     * @return hashCode de type string
     */
    public final String getKey() {
        return String.valueOf(hashCode());
    }

    /** Permet de recuperer la valeur de nom.
     *
     * @return le nom de l'utilisateur
     */
    public final String getNom() {
        return this.nom;
    }
    /** Permet de modifier la valeur du nom.
     *
     * @param aNom est egale au nom de l'utilisateur
     */
    public final void setNom(final String aNom) {
        this.nom = aNom;
    }

    /** Permet de recuperer la valeur de prenom.
     *
     * @return le prenom de l'utilisateur
     */
    public final String getPrenom() {
        return this.prenom;
    }
    /** Permet de modifier la valeur de prenom.
     *
     * @param aPrenom est egale au prenom de l'utilisateur
     */
    public final void setPrenom(final String aPrenom) {
        this.prenom = aPrenom;
    }

    /** Permet de recuperer la valeur de adresse.
     *
     * @return l'adresse de l'utilisateur
     */
    public final String getAdresse() {
        return this.adresse;
    }
    /** Permet de modifier la valeur de adresse.
     *
     * @param aAdresse est egale a l'adresse de l'utilisateur
     */
    public final void setAdresse(final String aAdresse) {
        this.adresse = aAdresse;
    }

    /** Permet de recuperer la valeur de numeroFixe.
     *
     * @return le numero fixe de l'utilisateur
     */
    public final String getNumeroFixe() {
        return this.numeroFixe;
    }
    /** Permet de modifier la valeur du numero fixe.
     *
     * @param aNumeroFixe est egale au numero fixe de l'utilisateur
     */
    public final void setNumeroFixe(final String aNumeroFixe) {
        this.numeroFixe = aNumeroFixe;
    }

    /** Permet de recuperer la valeur de numeroNatel.
     *
     * @return le numero de natel de l'utilisateur
     */
    public final String getNumeroNatel() {
        return this.numeroNatel;
    }
    /** Permet de modifier la valeur du numero de natel.
     *
     * @param aNumeroNatel est egale au numero de natel de l'utilisateur
     */
    public final void setNumeroNatel(final String aNumeroNatel) {
        this.numeroNatel = aNumeroNatel;
    }

    /** Permet de recuperer la valeur de mail.
     *
     * @return le mail de l'utilisateur
     */
    public final String getMail() {
        return this.mail;
    }
    /** Permet de modifier la valeur de mail.
     *
     * @param aMail est egale au mail de l'utilisateur
     */
     public final void setMail(final String aMail) {
        this.mail = aMail;
    }

    /** Permet de recuperer la valeur de user.
     *
     * @return le user de l'utilisateur
     */
     public final String getUser() {
         return this.user;
    }
     /** Permet de modifier la valeur de user.
     *
     * @param aUser est egale au user de l'utilisateur
     */
    public final void setUser(final String aUser) {
        this.user = aUser;
    }

    /** Permet de recuperer la valeur de idUtilisateur.
     *
     * @return l'idUtilisateur de l'utilisateur
     */
    public final String getIdUtilisateur() {
        return this.idUtilisateur;
    }
    /** Permet de modifier la valeur de idUtilisateur.
     *
     * @param aIdUtilisateur est egale a l'idUtilisateur de l'utilisateur
     */
    public final void setIdUtilisateur(final String aIdUtilisateur) {
        this.idUtilisateur = aIdUtilisateur;
    }

    /** Permet de recuperer la valeur du mot de passe.
     *
     * @return le mot de passe de l'utilisateur
     */
    public final String getPassword() {
        return this.password;
    }
    /** Permet de modifier la valeur du mot de passe.
     *
     * @param aPassword est egale au mot de passe de l'utilisateur
     */
    public final void setPassword(final String aPassword) {
        this.password = aPassword;
    }
}